/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.ppsa.logic;

import com.ppsa.bean.AreaBean;
import com.ppsa.bean.AsignacionBean;
import com.ppsa.bean.CargoBean;
import com.ppsa.bean.DocumentoBean;
import com.ppsa.bean.EmpleadoBean;
import com.ppsa.bean.EmpresaBean;
import com.ppsa.bean.FormatoBean;
import com.ppsa.bean.MenuBean;
import com.ppsa.bean.PerfilBean;
import com.ppsa.bean.ProcedimientoBean;
import com.ppsa.bean.ReunionBean;
import com.ppsa.bean.TipoDocumentoBean;
import com.ppsa.bean.UsuarioBean;
import com.ppsa.common.Constantes;
import com.ppsa.dao.AlertaDao;
import com.ppsa.dao.AreaDao;
import com.ppsa.dao.AsignacionDao;
import com.ppsa.dao.CargoDao;
import com.ppsa.dao.DocumentoDao;
import com.ppsa.dao.EmpleadoDao;
import com.ppsa.dao.PerfilDao;
import com.ppsa.dao.ReunionDao;
import com.ppsa.dao.TareaDao;
import com.ppsa.dao.UsuarioDao;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import org.apache.log4j.Logger;

/**
 *
 * @author JONATAN
 */
public class ConsultaLogic {
static final Logger m_log = Logger.getLogger(ConsultaLogic.class.getName());
    public Object obtenerListado(String strA_pagina , UsuarioBean objA_usuarioBean, HashMap<String,String> hmA_parametro ) throws Exception {

        
        PerfilDao objL_perfilDao = null;
        UsuarioDao objL_usuarioDao = null;
        DocumentoDao objL_documentoDao = null;
        TareaDao objL_tareaDao = null;
        ReunionDao objL_reunionDao = null;
        AlertaDao objL_alertaDao = null;
        AsignacionDao objL_asignacionDao = null;
        Object objL_general = new Object();

        if( strA_pagina.equals(Constantes.DATATABLE_LISTADO_USUARIO) ){
            objL_usuarioDao = new UsuarioDao();
            objL_general = objL_usuarioDao.listarUsuario(null);

        } else if( strA_pagina.equals(Constantes.DATATABLE_LISTADO_PERFIL) ){
            objL_perfilDao = new PerfilDao();
            objL_general = objL_perfilDao.listarPerfil(null);

        } else if( strA_pagina.equals(Constantes.DATATABLE_LISTADO_DOCUMENTO) ){
            objL_documentoDao = new DocumentoDao();
            objL_general = objL_documentoDao.listarDocumentos(null, objA_usuarioBean);

        } else if( strA_pagina.equals(Constantes.DATATABLE_LISTADO_TAREA) ){
            objL_tareaDao = new TareaDao();
            objL_general = objL_tareaDao.listarTarea(null, objA_usuarioBean);

        } else if( strA_pagina.equals(Constantes.DATATABLE_LISTADO_REUNION) ){
            objL_reunionDao = new ReunionDao();
            objL_general = objL_reunionDao.listarReunion(null, objA_usuarioBean);

        } else if( strA_pagina.equals(Constantes.DATATABLE_LISTADO_ALERTA) ){
            objL_alertaDao = new AlertaDao();
            objL_general = objL_alertaDao.listarAlerta(null, objA_usuarioBean);

        } else if( strA_pagina.equals(Constantes.DATATABLE_LISTADO_VERSION) ){
            objL_documentoDao = new DocumentoDao();
            objL_general = objL_documentoDao.listarDocumentosxVersion(new DocumentoBean(hmA_parametro.get("strpv_codigoDocumento")));
            
        } else if( strA_pagina.equals(Constantes.DATATABLE_LISTADO_ASIGNACION) ){
            objL_asignacionDao = new AsignacionDao();
            objL_general = objL_asignacionDao.listarAsignacion(hmA_parametro.get("strpv_codigoReunion"));

        } else if( strA_pagina.equals(Constantes.DATATABLE_LISTADO_ASIGNACION_DETALLE) ){
            objL_asignacionDao = new AsignacionDao();
            objL_general = objL_asignacionDao.listarAsignacionDetalle();
        } else if( strA_pagina.equals(Constantes.DATATABLE_LISTADO_DOCUMENTO_REGISTRO) ){
            objL_documentoDao = new DocumentoDao();
            objL_general = objL_documentoDao.listarDocumentos(null, objA_usuarioBean);
        } 

        return objL_general;
    }

    public List<UsuarioBean> listarUsuario() {
        return null;
    }
    
    public PerfilBean obtenerPerfil( String strpv_codigoPerfil )throws Exception {

        return new PerfilDao().obtenerPerfil(new PerfilBean(strpv_codigoPerfil));
    }
    public AsignacionBean obtenerAsignacion( String strpv_codigoAsignacion ) throws Exception {
        return new AsignacionDao().obtenerAsignacion(strpv_codigoAsignacion);
    }
    
    public DocumentoBean obtenerDocumento( String strpv_codigoDocumento )throws Exception {
        DocumentoDao objL_documentoDao = new DocumentoDao();
        return objL_documentoDao.obtenerDocumento(new DocumentoBean(strpv_codigoDocumento));
    }
    
    public UsuarioBean obtenerUsuario( String strpv_codigoUsuario ) throws Exception{
       UsuarioDao objL_usuarioDao = new UsuarioDao();
       return objL_usuarioDao.obtenerUsuario(new UsuarioBean( strpv_codigoUsuario ));
    }
    public ReunionBean obtenerReunion(String strpv_valorID) throws Exception{
        ReunionDao objL_reunionDao = new ReunionDao();
        return objL_reunionDao.obtenerReunion(new ReunionBean(strpv_valorID));
    }    
    public List<EmpleadoBean>  obtenerListadoReunionEmpleado(String strpv_codigoReunion) throws Exception{
        ReunionDao objL_reunionDao = new ReunionDao();
        return objL_reunionDao.obtenerListadoReunionEmpleado(strpv_codigoReunion);
    }
    public List<EmpleadoBean>  obtenerListadoAsignacionEmpleado(String strpv_codigoAsignacion) throws Exception{
        ReunionDao objL_reunionDao = new ReunionDao();
        return objL_reunionDao.obtenerListadoAsignacionEmpleado(strpv_codigoAsignacion);
    }    
    public List<EmpleadoBean>  obtenerUsuarioDocuLeido(String strpv_codigoReunion,String strpv_codigoVersion) throws Exception{
        EmpleadoDao objL_empleadoDao = new EmpleadoDao();
        return objL_empleadoDao.obtenerUsuarioDocuLeido(strpv_codigoReunion, strpv_codigoVersion);
    }
    public List<EmpleadoBean>  obtenerUsuarioDocuNoLeido(String strpv_codigoReunion,String strpv_codigoVersion) throws Exception{
        EmpleadoDao objL_empleadoDao = new EmpleadoDao();
        return objL_empleadoDao.obtenerUsuarioDocuNoLeido(strpv_codigoReunion, strpv_codigoVersion);
    }    
    public List<CargoBean>  obtenerAreaCargoBitacora(String strpv_codigoDocumento,String strpv_codigoVersion) throws Exception{
        return new DocumentoDao().obtenerBitacoraArea(strpv_codigoDocumento, strpv_codigoVersion);
    }       
    public List<FormatoBean> obtenerListadoFormato( String strp_codigoDocumento,String strpv_codigoVersion ) throws Exception{
        DocumentoDao objL_documentoDao = new DocumentoDao();
        return objL_documentoDao.listarFormato( strp_codigoDocumento, strpv_codigoVersion );
    }
    public List<PerfilBean> selectPerfil() throws Exception{
       PerfilDao objL_perfilDao = new PerfilDao();
       return objL_perfilDao.selectPerfil();
    }
    public List<EmpresaBean> selectEmpresa() throws Exception {
        DocumentoDao objL_documentoDao = new DocumentoDao();
        return objL_documentoDao.selectEmpresa();
    }
    public List<ProcedimientoBean> selectDocumentoProcedimiento( UsuarioBean objA_usuarioBean )throws Exception {
        DocumentoDao objL_documentoDao = new DocumentoDao();
        return objL_documentoDao.selectDocumentoProcedimiento( objA_usuarioBean );
    }  
    
    public List<TipoDocumentoBean> selectTipoDocumento() throws Exception {
        DocumentoDao objL_documentoDao = new DocumentoDao();
        return objL_documentoDao.selectTipoDocumento();
    }    
    public EmpleadoBean obtenerEmpleadoResponsable(String strpv_codigoDocumento, String strpv_codigoVersion, String strpv_tipo ) throws Exception {
        EmpleadoDao objL_empleadoDao = new EmpleadoDao();
        return objL_empleadoDao.obtenerEmpleadoResponsable(strpv_codigoDocumento, strpv_codigoVersion, strpv_tipo);
    } 
    public List<EmpleadoBean> obtenerEmpleadoResponsableCopia(String strpv_codigoDocumento, String strpv_codigoVersion, String strpv_tipo ) throws Exception {
        EmpleadoDao objL_empleadoDao = new EmpleadoDao();
        return objL_empleadoDao.obtenerEmpleadoResponsableCopia(strpv_codigoDocumento, strpv_codigoVersion, strpv_tipo);
    } 
    public List<EmpleadoBean> obtenerEmpleadoxDocumento(String strpv_codigoDocumento, String strpv_codigoVersion, String strpv_tipo  ) throws Exception {
        EmpleadoDao objL_empleadoDao = new EmpleadoDao();
        return objL_empleadoDao.obtenerEmpleadoxDocumento(strpv_codigoDocumento, strpv_codigoVersion, strpv_tipo );
    }
    public List<EmpleadoBean> listarEmpleado() throws Exception {
        EmpleadoDao objL_empleadoDao = new EmpleadoDao();
        return objL_empleadoDao.listarEmpleado();

    }    
    public List<AreaBean> listarArea(String StrA_codigoEmpresa) throws Exception {
        AreaDao objL_areaDao = new AreaDao();
        return objL_areaDao.listarArea(StrA_codigoEmpresa);
    }
    
    public List<CargoBean> listarCargo(String StrA_codigoArea) throws Exception {
        return new CargoDao().listarCargo(StrA_codigoArea);
    }  
    public List<AsignacionBean> listarAsignacion(String strpv_codigoReunion) throws Exception {
        return new AsignacionDao().listarAsignacion(strpv_codigoReunion);
    }  
    public List<AsignacionBean> listarAsignacionDetalle() throws Exception {
        return new AsignacionDao().listarAsignacionDetalle();
    }       
    public Integer obtenerTotalAlerta( UsuarioBean objA_usuarioBean) throws Exception {
        return (new AlertaDao().obtenerCantidadAlerta(null, objA_usuarioBean));
    }
    public List<EmpleadoBean> listarEmpleadoxPerfil( String strpv_tipoPerfil ) throws Exception {
        return (new EmpleadoDao().listarEmpleadoxPerfil(strpv_tipoPerfil));
    }
    
    
}
